package com.xbongbong.pro.statistic.model;

import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.DataWarningEntity;

import java.util.List;
import java.util.Map;

/**
 * @ClassName DataWarningModel
 * @Description 数据预警
 * @Author mengna.Deng
 * @Date 2021/4/15 19:25
 * @Version 1.0
 */
public interface DataWarningModel extends IModel<DataWarningEntity> {
    /**
     * 保存设置
     *
     * @param entity 实体
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    Integer save(DataWarningEntity entity);
    /**
     * 删除实体
     *
     * @param key 数据预警id
     * @param corpid 公司id
     * @throws
     * @return
     * @author mengna.Deng
     * @date 2021/4/15 19:26
     * @since
     * @version
     */
    Integer deleteByKey(Long key, String corpid);
    /**
     * 批量插入
     *
     * @param entityList 实体列表
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    void insertBatch(List<DataWarningEntity> entityList);

    /**
     * 获取实体
     *
     * @param key 智能助手id
     * @param corpid 公司id
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    DataWarningEntity getByKey(Long key, String corpid);

    /**
     * 获取公司ids
     *
     * @param param 入参
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    List<String> findCorps(Map<String, Object> param);
    /**
     * 获取公司数量
     *
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2019-05-10 10:55
     * @since
     * @version
     */
    Integer getCorpsCount();

    /**
     * 获取启用的个数
     *
     * @param corpid 公司
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    Integer getEnableCount(String corpid);

    /**
     *  获取单个图表的预警数目
     * @param chartId
     * @return
     */
    int getCountByChartId(Long chartId,Integer enable);

    /**
     * 批量更新（name, enable，action，samplingRange, updateTime，strategy，executor，smsExecutor,historyMaxNum ）
     *
     * @param entityList 实体列表
     * @param corpid 公司id
     * @throws
     * @return
     * @author hongxiao
     * @date 2019-12-06 11:01
     * @since
     * @version
     */
    void updateBatch(List<DataWarningEntity> entityList, String corpid);

    /**
     * 根据图表id查询对应的预警list
     * @param corpid
     * @param chartId
     * @return
     */
    List<DataWarningEntity>  queryByChartId(String corpid, Long chartId);

    /**
     * 获取公司ids
     *
     * @param param 入参
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    List<Long> findDwIds(Map<String, Object> param);

    /**
     * 批量删除
     *
     * @return
     * @throws
     * @author mengna.Deng
     * @date: 2021/4/15 19:26
     * @since v1.0
     * @version v1.0
     */
    void deleteBatch(String corpid,List<Long> chartIdIn);
}
